-IDENTIFICATION DIVISION
-PROGRAM-ID Comet
-VERSION 20240205
-COMMENT A comet moves on a parabolic orbit in the gravitational field of the stationary sun.
-COMMENT Its orbital plane coincides with the plane of the Earth's orbit, which is assumed to be circular.
-COMMENT The perihelion distance is one third of the Earth's orbital radius R.E.
-COMMENT How long does the comet move within the Earth's orbit?
-COMMENT t(r)=root(2/(gamma*m(sun))*integral from 1/3RE to RE (r/root(r-1/3 RE)) dr
-
-ENVIRONMENT DIVISION
-ENGINE Anabrid-THAT
-TIMEBASE 100ms # use SLOW on both integrators
-REQUIRES COEFFICIENT 3, INTEGRATOR 2, COMPARATOR 1, SUMMER 1, OPEN-AMP 2, MULTIPLIER 2, INVERTER 1
-
-DATA DIVISION
-OUTPUT OUTPUT.X -xlimited
-OUTPUT OUTPUT.Y result
-COEFFICIENT.1 Factor # root(2/(gamma*m)), scaled to 0,142 10kd/Tm^3/2
-COEFFICIENT.2 RE # Earth's orbital radius, scaled to 0,150 Tm
-COEFFICIENT.3 1/3RE # note: dependent on RE, scaled to 0,05 Tm
-
-PROGRAM DIVISION
-+1 -> COEFFICIENT.RE -> RE
-+1 -> COEFFICIENT.1/3RE -> 1/3RE
-
-# obtaining x through integration of 1, starting at 1/3RE
-+1, IC:1/3RE -> INTEGRATOR -> -x
-
-# limiting x to the upper limit of the integral RE and set x=0 if beyond
-A:-x, B:RE, GT0:-x -> COMPARATOR -> -xlimited
-
--xlimited, 1/3RE -> SUMMER -> -(-x+1/3RE)=x-1/3RE
-
-# root of x-1/3RE
-## first invert because the input of a root has to be negative
-x-1/3RE -> INVERTER -> -(x-1/3RE)
-## now make sure the input is never >0 (which causes the circuit to error)
-A:-(x-1/3RE), LT0:-(x-1/3RE) -> COMPARATOR -> -(x-1/3RE)limited
-## now calculate the root
--(x-1/3RE)limited, OA1 -> OPEN-AMP -> root
-root, root -> MULTIPLIER -> OA1
-
-# x/root
--xlimited, OA2 -> OPEN-AMP -> x/root
-x/root, root -> MULTIPLIER -> OA2
-
-# integral
-x/root -> INTEGRATOR -> integral
-integral -> COEFFICIENT.Factor -> result
-
-OPERATION DIVISION
-MODE REPEAT
-OP-TIME 111ms